﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using LibCliente;

namespace ProyectoIngenieriaSoftware.Administracion
{
    public partial class Formulario_web1 : System.Web.UI.Page
    {
        #region "Variables Globales"
        
        static int intOpcionGrabar;//variable tipo switche o sentinela que graba dependiendo si es de agregar o modificar
     
        #endregion

        #region "Metodos Locales"
        //metodos propios del formulario
        private void LimpiarDatos(bool limpiar)
        {
            if (limpiar)
            {
                this.txtDocumento.Text = "";
                this.txtApellido1.Text = "";
                this.txtApellido2.Text = "";
                this.txtDireccion.Text = "";
                this.txtNombre.Text = "";
                this.txtTelefono.Text = "";
            }
        }

        void tipomensajeControles() {
            if (intOpcionGrabar == 1)
            {
                txtApellido1_TextBoxWatermarkExtender.WatermarkText = "Digité Apellido";
                txtApellido2_TextBoxWatermarkExtender.WatermarkText = "Digité Apellido";
                txtDireccion_TextBoxWatermarkExtender.WatermarkText = "Digité Dirección";
                txtNombre_TextBoxWatermarkExtender.WatermarkText = "Digité Nombre";
                txtTelefono_TextBoxWatermarkExtender.WatermarkText = "Digité Telefono";

            }
            if (intOpcionGrabar == 2)
            {
                txtApellido1_TextBoxWatermarkExtender.WatermarkText = "Digité documento";
                txtApellido2_TextBoxWatermarkExtender.WatermarkText = "Digité documento";
                txtDireccion_TextBoxWatermarkExtender.WatermarkText = "Digité documento";
                txtNombre_TextBoxWatermarkExtender.WatermarkText = "Digité documento";
                txtTelefono_TextBoxWatermarkExtender.WatermarkText = "Digité documento";

            }
             if (intOpcionGrabar == 3)
            {
                txtApellido1_TextBoxWatermarkExtender.WatermarkText = "Digité documento";
                txtApellido2_TextBoxWatermarkExtender.WatermarkText = "Digité documento";
                txtDireccion_TextBoxWatermarkExtender.WatermarkText = "Digité documento";
                txtNombre_TextBoxWatermarkExtender.WatermarkText = "Digité documento";
                txtTelefono_TextBoxWatermarkExtender.WatermarkText = "Digité documento";

            }
        }

        private void Habilitar()
        {
            //enable es para habilitar o deshabilitar con true o false
            this.UpdatePanelCampos.Visible = false;//Donde estan los textbox codigo y descripcion
            this.MnuOpciones.Items[0].Enabled = true;//Agregar
            this.MnuOpciones.Items[1].Enabled = true;//Modificar
            this.MnuOpciones.Items[2].Enabled = true;//Buscar
            this.MnuOpciones.Items[3].Enabled = false;//Grabar
            this.MnuOpciones.Items[4].Enabled = false;//Cancelar
            this.MnuOpciones.Items[4].Text = "Cancelar";
            this.btnBuscar.Enabled = false;
            LimpiarDatos(true);
            //this.MnuOpciones.Items[5].Enabled = true;//Imprimir
        }

        private void DesHabilitar()
        {
            this.UpdatePanelCampos.Visible = true;
            this.MnuOpciones.Items[0].Enabled = false;
            this.MnuOpciones.Items[1].Enabled = false;
            this.MnuOpciones.Items[2].Enabled = false;
            this.MnuOpciones.Items[3].Enabled = true;
            this.MnuOpciones.Items[4].Enabled = true;
            this.MnuOpciones.Items[4].Text = "Cancelar";
            this.btnBuscar.Enabled = false;
            txtApellido1.ReadOnly = false;
            txtApellido2.ReadOnly = false;
            txtDireccion.ReadOnly = false;
            txtNombre.ReadOnly = false;
            txtTelefono.ReadOnly = false;
            LimpiarDatos(true);

            //this.mnnOpciones.Items[5].Enabled = false;//Imprimir
        }

        #endregion
        protected void Page_Load(object sender, EventArgs e)
        {
              
              if(!Page.IsPostBack) { Habilitar(); }
              


        }
        private void GrabarRegistro()
        {
            switch (intOpcionGrabar)//para saber que opcion  selecciono, el selectedvalue es el que tiene el nombre de las opciones
            {
                case 1:
                    clsCliente objGrabar = new clsCliente();
                    objGrabar.CodigoClie = txtDocumento.Text;
                    objGrabar.NombreClie = txtNombre.Text;
                    objGrabar.Apellido1Clie = txtApellido1.Text;
                    objGrabar.Apellido2Clie = txtApellido2.Text;
                    objGrabar.TelefonoClie = txtTelefono.Text;
                    objGrabar.DireccionClie = txtDireccion.Text;
                    objGrabar.Estado = cboEstado.SelectedValue;
                    if (objGrabar.Ingresar())
                        lblMensaje.Text = "grabo";
                    else lblMensaje.Text = objGrabar.Error;
                    objGrabar = null;
                    break;

                case 2:
                    ///Solo son dos casos para guardar y actualizar aca iria el codigo de la actualizacion.
                    break;

             

            }

            
        }

        protected void MnuOpciones_MenuItemClick(object sender, MenuEventArgs e)
        {
            
            switch (this.MnuOpciones.SelectedValue)//para saber que opcion  selecciono, el selectedvalue es el que tiene el nombre de las opciones
            {
                case "opcAgregar":
                  if (Roles.IsUserInRole("Administracion"))
                    {
                    lblTitulo.Text = "Agregar Cliente";
                    intOpcionGrabar = 1;
                    tipomensajeControles();
                    DesHabilitar();
                    //para grabar un maestro->un insert en la BD

                    this.txtDocumento.Focus();
                   }
                    break;

                case "OpcModificar":
                    lblTitulo.Text = "Actualización de Cliente";
                    txtDocumento.Focus();
                    intOpcionGrabar = 2;
                    tipomensajeControles();
                    DesHabilitar();
                    this.btnBuscar.Enabled = true;
                    break;
    
                case "opcBuscar":
                    lblTitulo.Text = "Búsquedad de Cliente";
                    tipomensajeControles();
                    DesHabilitar();
                    btnBuscar.Enabled = true;
                    txtApellido1.ReadOnly = true;
                    txtApellido2.ReadOnly = true;
                    txtDireccion.ReadOnly = true;
                    txtNombre.ReadOnly = true;
                    txtTelefono.ReadOnly = true;
                    this.MnuOpciones.Items[3].Enabled = false;
                    txtDocumento.Focus();
                    this.MnuOpciones.Items[4].Text = "Salir de la Búsqueda";
                   
                    break;

                case "opcGrabar":
                    GrabarRegistro();
                    break;

                case "opcCancelar":
                    intOpcionGrabar = 0;
                    lblTitulo.Text = "Administración de Cliente";
                    Habilitar();
                    break;
            }
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            clsCliente objConsultar = new clsCliente();
            objConsultar.CodigoClie = txtDocumento.Text;
            if (objConsultar.Consultar())
            {
                txtNombre.Text = objConsultar.NombreClie;
                txtApellido1.Text = objConsultar.Apellido1Clie;
                txtApellido2.Text = objConsultar.Apellido2Clie;
                txtTelefono.Text = objConsultar.TelefonoClie;
                txtDireccion.Text = objConsultar.DireccionClie;
            }
            lblMensaje.Text = objConsultar.Error;

            objConsultar = null;
        }


    }
}